package org.example.hrpc.config.reference;

public class ReferenceConfigBase<T> {

    /**
     * The interface class of the reference service
     * 在泛化调用情况下，interfaceName和interfaceClass值不同
     * interfaceName一定是真实的服务接口
     */
    protected Class<?> interfaceClass;

    /**
     * The interface name of the exported service
     */
    protected String interfaceName;

    // 方法名
    protected String methodName;
    // 参数类型列表
    protected Class<?>[] parameterTypes;
    // 参数列表
    protected Object[] arguments;

    /**
     * client type
     */
    protected String client;

    /**
     * The url for peer-to-peer invocation
     */
    protected String url;

    /**
     * Whether to use generic interface
     */
    protected String generic;

    protected String protocolName = "hrpc";

    protected String bindToHost;

    protected int bindToPort;



    public Class<?> getInterfaceClass() {
        return interfaceClass;
    }

    public void setInterfaceClass(Class<?> interfaceClass) {
        this.interfaceClass = interfaceClass;
    }

    public String getInterfaceName() {
        return interfaceName;
    }

    public void setInterfaceName(String interfaceName) {
        this.interfaceName = interfaceName;
    }

    public String getClient() {
        return client;
    }

    public void setClient(String client) {
        this.client = client;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getGeneric() {
        return generic;
    }

    public void setGeneric(String generic) {
        this.generic = generic;
    }

    public String getMethodName() {
        return methodName;
    }

    public void setMethodName(String methodName) {
        this.methodName = methodName;
    }

    public Class<?>[] getParameterTypes() {
        return parameterTypes;
    }

    public void setParameterTypes(Class<?>[] parameterTypes) {
        this.parameterTypes = parameterTypes;
    }

    public Object[] getArguments() {
        return arguments;
    }

    public void setArguments(Object[] arguments) {
        this.arguments = arguments;
    }

    public String getProtocolName() {
        return protocolName;
    }

    public void setProtocolName(String protocolName) {
        this.protocolName = protocolName;
    }

    public String getBindToHost() {
        return bindToHost;
    }

    public void setBindToHost(String bindToHost) {
        this.bindToHost = bindToHost;
    }

    public int getBindToPort() {
        return bindToPort;
    }

    public void setBindToPort(int bindToPort) {
        this.bindToPort = bindToPort;
    }
}
